<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>带参数的过滤器</title>
</head>

<body>

  <div id="app">
    <p>{{time | format('yyyy-MM-dd hh:mm:ss')}}</p>
  </div>
  <script src="./js/vue.js"></script>
  <script>
    // Vue.filter('format', function (val, arg1) {
    //   // console.log(arg1)
    //   function dateFormat(date, format) {
    //     if (typeof date === "string") {
    //       var mts = date.match(/(\/Date\((\d+)\)\/)/);
    //       if (mts && mts.length >= 3) {
    //         date = parseInt(mts[2]);
    //       }
    //     }
    //     date = new Date(date);
    //     if (!date || date.toUTCString() == "Invalid Date") {
    //       return "";
    //     }
    //     var map = {
    //       "M": date.getMonth() + 1, //月份 
    //       "d": date.getDate(), //日 
    //       "h": date.getHours(), //小时 
    //       "m": date.getMinutes(), //分 
    //       "s": date.getSeconds(), //秒 
    //       "q": Math.floor((date.getMonth() + 3) / 3), //季度 
    //       "S": date.getMilliseconds() //毫秒 
    //     };

    //     format = format.replace(/([yMdhmsqS])+/g, function (all, t) {
    //       var v = map[t];
    //       if (v !== undefined) {
    //         if (all.length > 1) {
    //           v = '0' + v;
    //           v = v.substr(v.length - 2);
    //         }
    //         return v;
    //       } else if (t === 'y') {
    //         return (date.getFullYear() + '').substr(4 - all.length);
    //       }
    //       return all;
    //     });
    //     return format;
    //   }
    //   return dateFormat(val, arg1);
    // })
    Vue.filter('format', function dateFormat(date, format) {
      if (typeof date === "string") {
        var mts = date.match(/(\/Date\((\d+)\)\/)/);
        if (mts && mts.length >= 3) {
          date = parseInt(mts[2]);
        }
      }
      date = new Date(date);
      if (!date || date.toUTCString() == "Invalid Date") {
        return "";
      }
      var map = {
        "M": date.getMonth() + 1, //月份 
        "d": date.getDate(), //日 
        "h": date.getHours(), //小时 
        "m": date.getMinutes(), //分 
        "s": date.getSeconds(), //秒 
        "q": Math.floor((date.getMonth() + 3) / 3), //季度 
        "S": date.getMilliseconds() //毫秒 
      };

      format = format.replace(/([yMdhmsqS])+/g, function (all, t) {
        var v = map[t];
        if (v !== undefined) {
          if (all.length > 1) {
            v = '0' + v;
            v = v.substr(v.length - 2);
          }
          return v;
        } else if (t === 'y') {
          return (date.getFullYear() + '').substr(4 - all.length);
        }
        return all;
      });
      return format;
    }
    )
    var vm = new Vue({
      el: '#app',
      data: {
        time: new Date()
      },
      emthods: {

      }
    })
  </script>
</body>

</html>